class SuperAnfitriao
  attr_accessor :nomes

  def initialize(nomes = "Mundo")
    @nomes = nomes
  end
  def dizer_ola
    if @nomes.nil?  #Compara se @nomes == nil
      puts "..."
    elsif @nomes.respond_to?("each") #Verifica se @nomes responde a each, ou seja se tem o metodo each 
     @nomes.each do |nome| #Para cada elemento em @nomes recupera um elemento chamado |nome| (presumido ser String) 
        puts "Ola #{nome}" #Imprime a String 
      end
    else
      puts "Ola #{@nomes}" #So tem um elemento String em @nomes
    end
  end

  def dizer_adeus
    if @nomes.nil?
      puts "..."
    elsif @nomes.respond_to?("join") #Se responde ao metodo join
      puts "Adeus #{@nomes.join(", ")}. Voltem em breve." #Recupera cada elemento em @nomes separados por ,
    else
      puts "Adeus #{@nomes}. Volta em breve."
    end
  end

end

if __FILE__ == $0
  a = SuperAnfitriao.new
  a.dizer_ola
  a.dizer_adeus

  # Alterar o nome para "Diogo"
  a.nomes = "Diogo"
  a.dizer_ola
  a.dizer_adeus  

  # Alterar o nome para um vector de nomes
  a.nomes = ["Ana", "Bia", "Caio", "Dani", "Erick"]
  a.dizer_ola
  a.dizer_adeus  

  # Alterar para nil
  a.nomes = nil
  a.dizer_ola
  a.dizer_adeus  
end
